/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package processamento;

import java.awt.image.renderable.ParameterBlock;
import javax.media.jai.JAI;
import javax.media.jai.KernelJAI;
import javax.media.jai.PlanarImage;

/**
 *
 * @author Igor
 */
public class OperadorErosaoDilatacao {
       float[] estrutura = { 1,1,1,1,1,1,1,1,1,1,1,1,
                1,1,1,1,1,1,1,1,1,1,1,1,
                1,1,1,1,1,1,1,1,1,1,1,1,
               1,1,1,1,1,1,1,1,1,1,1,1,
               1,1,1,1,1,1,1,1,1,1,1,1,
               1,1,1,1,1,1,1,1,1,1,1,1,
               1,1,1,1,1,1,1,1,1,1,1,1,
               1,1,1,1,1,1,1,1,1,1,1,1,
               1,1,1,1,1,1,1,1,1,1,1,1,
               1,1,1,1,1,1,1,1,1,1,1,1,
               1,1,1,1,1,1,1,1,1,1,1,1,
               1,1,1,1,1,1,1,1,1,1,1,1};
    

    public PlanarImage erodeImagem (PlanarImage img) {
        ParameterBlock p = new ParameterBlock();
    KernelJAI kernel = new KernelJAI(5,5,estrutura);
        p.addSource(img);
        p.add(kernel);
        PlanarImage erodida = JAI.create("erode",p);
        return erodida;
     }

    public PlanarImage dilataImagem(PlanarImage img) {
       ParameterBlock p = new ParameterBlock();
    KernelJAI kernel = new KernelJAI(5,5,estrutura);
        p.addSource(img);
        p.add(kernel);
        PlanarImage dilatada = JAI.create("dilate",p);
        return dilatada;
    }

    public PlanarImage fechamento (PlanarImage img) {
        ParameterBlock p = new ParameterBlock();
        KernelJAI kernel = new KernelJAI(12,12,estrutura);
        p.addSource(img);
        p.add(kernel);
        PlanarImage dilatada = JAI.create("dilate",p);
        p.removeSources();
        p.addSource(dilatada);
        dilatada = JAI.create("erode", p);
        return dilatada;
    }
    
      public PlanarImage abertura (PlanarImage img) {
        ParameterBlock p = new ParameterBlock();
        KernelJAI kernel = new KernelJAI(4,4,estrutura);
        p.addSource(img);
        p.add(kernel);
        PlanarImage dilatada = JAI.create("erode", p);
        p.removeSources();
        p.addSource(dilatada);
        dilatada = JAI.create("dilate",p);
        return dilatada;
    }

}
